package com.whc.service;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.whc.dto.GoodsCreateDto;
import com.whc.dto.GoodsUpdateDto;
import com.whc.dto.OrderDto;
import com.whc.entity.Category;
import com.whc.entity.Goods;
import com.whc.entity.Photo;
import com.whc.result.PageResult;
import com.whc.vo.GoodsVo;
import org.springframework.beans.BeanUtils;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author 韦红材
 * @ClassName GoodsService
 * @data 2024/10/22 16:10
 * @Version V1.0
 **/
public interface GoodsService {
    //查询卖出的商品
    List<GoodsVo> selectSoldGoods(long userId);
    //查询买入的商品
    List<GoodsVo> selectBoughtGoods(long userId);
    //查询降价的商品
    List<GoodsVo> getCheaperGoods(long userId);
    //查询有效的商品
    List<GoodsVo> getWorksGoods(long userId);
    //查询无效的商品
    List<GoodsVo> getUnworksGoods(long userId);

    //根据类型名查询商品
    List<GoodsVo> SelectGoodsByType(String CategoryName);
    //根据id查询
    GoodsVo selectById(long id);
    //根据名称查询
    List<GoodsVo> selectByName(String name);
    //修改商品
    void updateGoods(GoodsUpdateDto goodsUpdateDto);
    //添加商品
    long insertGoods(GoodsCreateDto goodsCreateDto);
    //删除商品
    void deleteGoods(Long gid);

    List<GoodsVo> selectAll();
    //上传多个商品图片
    void addGoodsPhotos(List<String>urls,long goodId);
    //根据商品id查询商品所有图片
    List<String> findPhotosById(long goodId);

    List<GoodsVo> getAllExcept(long id);

    List<GoodsVo> getGoodsByUserId(Long id);

    void addGoodsWanters(long goodId);

    boolean buyGoods(OrderDto orderDto);

    List<GoodsVo> SelectGoodsByTypeExcept(String categoryName, Long id);
}
